package com.tbit.uqbike.service.rpcservice;

import com.tbit.uqbike.object.pojo.MachineBorrow;
import com.tbit.uqbike.object.value.LoginInfo;

import java.util.List;

/**
 * 设备借出service
 *
 * @author Leon
 * 2019年11月9日 下午4:08:03
 */
public interface MachineBorrowService {

    /**
     * 根据设备id查询
     *
     * @param machineId
     * @return
     */
    MachineBorrow getByMachineId(Integer machineId);

    /**
     * 根据代理商id查询
     *
     * @param accountId
     * @return
     */
    List<MachineBorrow> getByAccountId(Integer accountId);

    /**
     * 获取所有骑行中车辆
     *
     * @return
     */
    List<MachineBorrow> getAll();

    /**
     * 根据用户id查询
     *
     * @param userId
     * @return
     */
    MachineBorrow getByUserId(Integer userId);

    /**
     * 根据设备编号删除骑行记录
     *
     * @param machineId
     */
    void del(Integer machineId);

    /**
     * 结束用户订单（手动上锁，用于异常的情况）
     *
     * @param phone
     * @param machineNO
     * @param money
     * @param remark
     */
    void finishRideOrder(LoginInfo loginInfo, Integer accountId, String phone, String machineNO, Integer money, String remark);

    /**
     * x
     * 人工结束订单
     *
     * @param userCode
     * @param money
     * @param remark
     */
    void finishRideOrderM(String userCode, Integer money, String remark);


    void order();

    List<MachineBorrow> getByMachineIds(List<Integer> machineIds);
}